package acm;
import testing.*;

import java.util.InputMismatchException;
import java.util.Scanner;


public class Frecuencia {
	
	private Scanner in = new Scanner(System.in);
	private int casos;
	private int amplitud;
	private int frecuencia;
	private String salida="";
	
	public Frecuencia(){
		
		//this.entrada();

		
	}
	
	/**Metodo de validacion de datos de entrada
	 * @param valor1 frecuencia ingresada para ser validada
	 * @param valor2 amplitud ingresada para ser validada
	 */
	public void validacion(String valor1, String valor2){
		
		
		try{
			this.frecuencia= Integer.parseInt(valor1);
			this.amplitud= Integer.parseInt(valor2);
			
			if(this.frecuencia<=0||this.frecuencia>9){
				System.out.println("Frecuencia invalida \n");
				this.frecuencia =0;
			}
			
			if(this.amplitud<=0|| this.amplitud>9){
				System.out.println("Amplitud invalida \n");
				this.amplitud=0;
			}
		}
		catch(Exception ex){
			
			System.out.println("error, datos invalidos");
			
		}

		
	}
	
	/**Metodo para ingresar datos por consola
	 * 
	 */
	public void entrada(){
		
		this.casos = in.nextInt();
		String ampliii = in.next();
		String freee = in.next();
		this.repeticion(freee, ampliii);
		
		
	}
	
	/**
	 * @param ampli valor de amplificacion del triangulo generado
	 */
	public void triangulo(int ampli){
		
		for(int i=1; i<ampli;i++){
			salida+="\n";
			for(int j=1; j<=i;j++){
				
				if(i<=ampli) salida+=i;;
				
			}		
		}
		for(int k=ampli;k>0;k--){
			salida+="\n";
			for(int j=1; j<=k;j++){
				
				if(k<=ampli) salida+=k;
				
			}
		
		}
	}
	
	/**
	 * @param frec valor de frecuencia, numero de veces que se repite una amplificacion
	 * @param ampli valor de amplificacion del triangulo
	 * @return retorna la cantidad de triangulos que se mostraran en pantalla
	 */
	public String repeticion(String frec, String ampli){
	
		this.validacion(frec,ampli);
		
		for(int l=0;l<this.frecuencia;l++){
			
			this.triangulo(this.amplitud);
			salida+="\n";
		}
		System.out.println(salida);
		return salida;
	}
	
	/**
	 * @param num es el numero ingresado 
	 ** @return retorna verdadero si el parametro ingresado es un numero
	 */
	public boolean numero(String num){
		
    	try{
        	
    		int t = Integer.parseInt(num);
    		return true;
    	}
    	catch(Exception e){
    		return false;
    		
    	}

	}

}
